﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects.SqlClient;

namespace proyectoENS
{
    class DALSanciones
    {
        private static proyectoENSEntities db = new proyectoENSEntities();

        public static List<Sanciones> getSancionesByIdAlumno(int idAlumno)
        {
            var lista = (from s in db.Sanciones
                         where SqlFunctions.DateDiff("year", s.fecha, DateTime.Now) == 0 &&
                         s.idAlumno == idAlumno &&
                         s.pendiente == false
                         select s).ToList<Sanciones>();
            return lista;

        }
        public static int getCantSancionesByIdAlumno(int idAlumno)
        {
            int cont = 0;
            var lista = (from s in db.Sanciones
                         where SqlFunctions.DateDiff("year", s.fecha, DateTime.Now) == 0 &&
                         s.idAlumno == idAlumno &&
                         s.pendiente == false
                         select s).ToList<Sanciones>();
            foreach (Sanciones item in lista)
            {
                cont += (int)item.CantAmonest;
            }
            return cont;

        }
        public static bool newSancion(Sanciones unaSancion)
        {
            db.Sanciones.AddObject(unaSancion);
            if (db.SaveChanges() == 1)
                return true;
            else
                return false;
        }
        public static List<Sanciones> getSancionesPendientes()
        {
            var lista = (from s in db.Sanciones
                         where SqlFunctions.DateDiff("year", s.fecha, DateTime.Now) == 0 &&
                         s.pendiente == true
                         select s).ToList<Sanciones>();
            return lista;
        }
        public static bool confirmarSancion(int idSancion, int cantAmonestaciones)
        {
            var san = (from s in db.Sanciones
                       where s.idSancion == idSancion
                       select s).FirstOrDefault<Sanciones>();
            san.pendiente = false;
            san.CantAmonest = byte.Parse(cantAmonestaciones.ToString());
            if (db.SaveChanges() == 1)
                return true;
            else
                return false;
        }
        public static bool anularSancion(int idSancion)
        {
            var san = (from s in db.Sanciones
                       where s.idSancion == idSancion
                       select s).FirstOrDefault<Sanciones>();
            db.Sanciones.DeleteObject(san);
            if (db.SaveChanges() == 1)
                return true;
            else
                return false;

        }
     
    }
}
